#ifndef __LINKLIST_H__
#define __LINKLIST_H__

typedef void Linklist;
#define null NULL

typedef struct _tag_linklistNode
{
    struct _tag_linklistNode *next;
} LinkListNode;

typedef struct _tag_Linklist
{
    LinkListNode header;
    int length;
} TLinklist;

typedef struct __func_linklist
{
    Linklist *(*create)(void);
    int (*destory)(Linklist **);
    int (*clear)(Linklist *);
    int (*length)(Linklist *);
    int (*insert)(Linklist *, LinkListNode *, int); // 在链表的某个位置插入节点
    LinkListNode *(*get)(Linklist *, int);          //获取某一个位置的节点
    LinkListNode *(*delete)(Linklist *, int);       // 删除某个位置的节点
} func_linklist;

#endif
